behavior-contracts 0.7.3 → 0.8.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/README.md +0 -1
- package/dist/authoring.d.ts +215 -3
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.js +269 -8
- package/dist/authoring.js.map +1 -1
- package/dist/behavior.d.ts +33 -1
- package/dist/behavior.d.ts.map +1 -1
- package/dist/behavior.js +49 -1
- package/dist/behavior.js.map +1 -1
- package/dist/bind.d.ts +64 -0
- package/dist/bind.d.ts.map +1 -0
- package/dist/bind.js +131 -0
- package/dist/bind.js.map +1 -0
- package/dist/builder.d.ts +30 -88
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +48 -56
- package/dist/builder.js.map +1 -1
- package/dist/expr-operator-types.d.ts +89 -0
- package/dist/expr-operator-types.d.ts.map +1 -0
- package/dist/expr-operator-types.js +134 -0
- package/dist/expr-operator-types.js.map +1 -0
- package/dist/generator/async-plan.d.ts.map +1 -1
- package/dist/generator/async-plan.js +4 -0
- package/dist/generator/async-plan.js.map +1 -1
- package/dist/generator/core.d.ts +15 -0
- package/dist/generator/core.d.ts.map +1 -1
- package/dist/generator/core.js +2 -0
- package/dist/generator/core.js.map +1 -1
- package/dist/generator/emit-php.d.ts.map +1 -1
- package/dist/generator/emit-php.js +1 -0
- package/dist/generator/emit-php.js.map +1 -1
- package/dist/generator/emit-python.d.ts.map +1 -1
- package/dist/generator/emit-python.js +1 -0
- package/dist/generator/emit-python.js.map +1 -1
- package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -1
- package/dist/generator/emit-straightline-typed-typescript.js +1 -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 +163 -26
- 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 +152 -32
- package/dist/generator/emit-typed-native-rust.js.map +1 -1
- package/dist/generator/emit-typescript.d.ts.map +1 -1
- package/dist/generator/emit-typescript.js +24 -8
- package/dist/generator/emit-typescript.js.map +1 -1
- package/dist/generator/index.d.ts +1 -1
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +7 -5
- package/dist/generator/index.js.map +1 -1
- package/dist/index.d.ts +41 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -6
- package/dist/index.js.map +1 -1
- package/dist/provenance.d.ts +102 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/provenance.js +128 -0
- package/dist/provenance.js.map +1 -0
- package/dist/type-gate.d.ts +63 -0
- package/dist/type-gate.d.ts.map +1 -0
- package/dist/type-gate.js +313 -0
- package/dist/type-gate.js.map +1 -0
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/generator/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/generator/core.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAGzF,MAAM,MAAM,oBAAoB,GAC5B,uBAAuB,GACvB,wBAAwB,GACxB,0BAA0B,GAC1B,UAAU,GACV,qBAAqB,GACrB,kBAAkB,GAClB,+BAA+B,CAAC;AAEpC,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,IAAI,EAAE,oBAAoB,CAAC;gBACf,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAKxD;AAOD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,EAAE,EAAE,gBAAgB,CAAC;IACrB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,8BAA8B;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,cAAc,EAAE,qBAAqB,CAAC;IACtC,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;CAChC;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED,uCAAuC;AACvC,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AA8CD,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,uCAAuC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,CAiCrF"}
|
package/dist/generator/core.js
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
import { SPEC_VERSIONS } from "../index.js";
|
|
26
26
|
import { assertPortableComponentGraph } from "../guard.js";
|
|
27
27
|
import { fingerprintComponentGraph } from "./fingerprint.js";
|
|
28
|
+
import { assertCompiled } from "../provenance.js";
|
|
28
29
|
export class GeneratorFailure extends Error {
|
|
29
30
|
code;
|
|
30
31
|
constructor(code, message) {
|
|
@@ -97,6 +98,7 @@ export function generateModule(ir, options) {
|
|
|
97
98
|
const plugin = registry.get(options.language);
|
|
98
99
|
if (!plugin)
|
|
99
100
|
gfail("UNKNOWN_LANGUAGE", `no emitter registered for language '${options.language}' (registered: ${registeredLanguages().join(", ")}) (fail-closed)`);
|
|
101
|
+
assertCompiled(ir); // SA3/SA7 出自ゲート: codegen 入力も無 token/改竄 IR は NON_COMPILED_IR で fail-closed
|
|
100
102
|
const validated = validateGeneratorInput(ir);
|
|
101
103
|
const fingerprint = fingerprintComponentGraph(validated);
|
|
102
104
|
const specVersions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/generator/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/generator/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA0BlD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,IAAI,CAAuB;IAC3B,YAAY,IAA0B,EAAE,OAAe;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,SAAS,KAAK,CAAC,IAA0B,EAAE,OAAe;IACxD,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AA+DD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,uEAAuE;AACvE;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,EAAW;IACzC,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,KAAK,CACH,uBAAuB,EACvB,qKAAqK,CACtK,CAAC;IACJ,MAAM,GAAG,GAAG,EAA6B,CAAC;IAC1C,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;QAC7D,KAAK,CACH,uBAAuB,EACvB,kNAAkN,CACnN,CAAC;IACJ,IAAI,GAAG,CAAC,SAAS,KAAK,CAAC;QACrB,KAAK,CAAC,wBAAwB,EAAE,aAAa,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACtH,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC;QACtF,KAAK,CAAC,uBAAuB,EAAE,+CAA+C,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACrH,IAAI,WAAW,GAAG,aAAa,CAAC,UAAU;QACxC,KAAK,CACH,0BAA0B,EAC1B,eAAe,WAAW,yCAAyC,aAAa,CAAC,UAAU,gBAAgB,CAC5G,CAAC;IAEJ,qEAAqE;IACrE,4BAA4B,CAAC,EAAE,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAqC,CAAC;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,UAAU,EAAE,0DAA0D,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAClB,KAAK,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAC,IAAI,qEAAqE,CAAC,CAAC;QAC/H,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,EAAsB,CAAC;AAChC,CAAC;AAqCD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,EAAW,EAAE,OAAwB;IAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM;QACT,KAAK,CACH,kBAAkB,EAClB,uCAAuC,OAAO,CAAC,QAAQ,kBAAkB,mBAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAC3H,CAAC;IAEJ,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,0EAA0E;IAC9F,MAAM,SAAS,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,UAAU,EAAE,aAAa,CAAC,UAAU;QACpC,IAAI,EAAE,aAAa,CAAC,IAAI;KACzB,CAAC;IACF,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAgB;QACvB,EAAE,EAAE,SAAS;QACb,WAAW;QACX,YAAY;QACZ,cAAc;QACd,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,oBAAoB;QACnE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM;KACnC,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACtB,WAAW;QACX,YAAY;QACZ,cAAc;QACd,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,sBAAsB,MAAM,CAAC,aAAa,EAAE;KAClF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-php.d.ts","sourceRoot":"","sources":["../../src/generator/emit-php.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAyE5D,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"emit-php.d.ts","sourceRoot":"","sources":["../../src/generator/emit-php.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAyE5D,eAAO,MAAM,UAAU,EAAE,aAMxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-php.js","sourceRoot":"","sources":["../../src/generator/emit-php.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,mDAAmD;AACnD,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO;;;;;;;;;oBASW,WAAW;;;;;yCAKU,YAAY,CAAC,QAAQ,qBAAqB,YAAY,CAAC,UAAU,eAAe,YAAY,CAAC,IAAI;;;mBAGvH,KAAK,CAAC,WAAW,CAAC;;;qBAGhB,KAAK;;;QAGlB,SAAS;;;;sBAIK,aAAa;wBACX,aAAa;kBACnB,aAAa;;;;;;;;sBAQT,aAAa;;;;;;;;;;;;;;;;wEAgBqC,aAAa;;;;;CAKpF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,MAAM;IACrB,oBAAoB,EAAE,mBAAmB;IACzC,IAAI;CACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"emit-php.js","sourceRoot":"","sources":["../../src/generator/emit-php.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,mDAAmD;AACnD,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO;;;;;;;;;oBASW,WAAW;;;;;yCAKU,YAAY,CAAC,QAAQ,qBAAqB,YAAY,CAAC,UAAU,eAAe,YAAY,CAAC,IAAI;;;mBAGvH,KAAK,CAAC,WAAW,CAAC;;;qBAGhB,KAAK;;;QAGlB,SAAS;;;;sBAIK,aAAa;wBACX,aAAa;kBACnB,aAAa;;;;;;;;sBAQT,aAAa;;;;;;;;;;;;;;;;wEAgBqC,aAAa;;;;;CAKpF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,SAAS,EAAE,kDAAkD;IAC7E,aAAa,EAAE,MAAM;IACrB,oBAAoB,EAAE,mBAAmB;IACzC,IAAI;CACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-python.d.ts","sourceRoot":"","sources":["../../src/generator/emit-python.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAwE5D,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"emit-python.d.ts","sourceRoot":"","sources":["../../src/generator/emit-python.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAwE5D,eAAO,MAAM,aAAa,EAAE,aAM3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-python.js","sourceRoot":"","sources":["../../src/generator/emit-python.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,+CAA+C;AAC/C,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;IAC9E,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO;;;;;;mBAMU,WAAW;OACvB,aAAa;;;wCAGoB,YAAY,CAAC,QAAQ,mBAAmB,YAAY,CAAC,UAAU,aAAa,YAAY,CAAC,IAAI;;;mBAGlH,KAAK,CAAC,WAAW,CAAC;;;oBAGjB,UAAU;;;OAGvB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCf,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,IAAI;CACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"emit-python.js","sourceRoot":"","sources":["../../src/generator/emit-python.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,+CAA+C;AAC/C,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;IAC9E,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO;;;;;;mBAMU,WAAW;OACvB,aAAa;;;wCAGoB,YAAY,CAAC,QAAQ,mBAAmB,YAAY,CAAC,UAAU,aAAa,YAAY,CAAC,IAAI;;;mBAGlH,KAAK,CAAC,WAAW,CAAC;;;oBAGjB,UAAU;;;OAGvB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCf,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,SAAS,EAAE,mDAAmD;IAC9E,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,IAAI;CACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-straightline-typed-typescript.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-typescript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAyB,QAAQ,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA2CpB,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AA4QF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"emit-straightline-typed-typescript.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-typescript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAyB,QAAQ,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA2CpB,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AA4QF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAOpC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -305,6 +305,7 @@ ${views}
|
|
|
305
305
|
*/
|
|
306
306
|
export const typescriptTypedEmitter = {
|
|
307
307
|
language: "typescript-typed",
|
|
308
|
+
classification: "codegen", // typed ts は CODEGEN(ts→IR→生成 ts コード・IR 非在・runtime-free)— #128/A6 で ir-exec から再分類
|
|
308
309
|
fileExtension: ".ts",
|
|
309
310
|
defaultRuntimeImport: "behavior-contracts",
|
|
310
311
|
filenameHint: "behaviors.typed.generated.ts",
|
|
@@ -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;AA6/E5D;;;;;;;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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GeneratorFailure } from "./core.js";
|
|
2
|
+
import { isControlGate } from "../behavior.js";
|
|
2
3
|
import { goStraightlineInternals } from "./emit-shared-go.js";
|
|
3
4
|
import { goTypedInternals } from "./emit-shared-go-typed.js";
|
|
4
5
|
import { buildTypePlan, deriveTypeRef, findDecl } from "./typed.js";
|
|
@@ -119,13 +120,17 @@ function staticStringArrElems(node) {
|
|
|
119
120
|
* Value-typed input) FAILS CLOSED — the covered read plane admits NO boxed escape (there is no
|
|
120
121
|
* `dslcontracts.Value` fallback on the native module). `where` names the emission site for the error.
|
|
121
122
|
*/
|
|
122
|
-
function portFieldGoType(node, inputPorts, where = "port", asBinding, plan) {
|
|
123
|
+
function portFieldGoType(node, inputPorts, where = "port", asBinding, plan, typedNodes) {
|
|
123
124
|
if (staticStringArrElems(node) !== null)
|
|
124
125
|
return "[]string";
|
|
125
126
|
// #110: a componentRef port bound to a runtime array input port (with a resolvable elemType) → []ElemT.
|
|
126
127
|
const arrElem = portArrayElemRef(node, inputPorts, plan);
|
|
127
128
|
if (arrElem !== null)
|
|
128
129
|
return `[]${renderTypeRef(arrElem)}`;
|
|
130
|
+
// #129: a leaf port that is a ref into a PRIOR NODE's typed arr outType (node→leaf array dataflow) → []ElemT.
|
|
131
|
+
const priorArr = priorNodeArrElemInfo(node, typedNodes, plan);
|
|
132
|
+
if (priorArr !== null)
|
|
133
|
+
return `[]${renderTypeRef(priorArr.elemRef)}`;
|
|
129
134
|
const num = numLiteralGoExpr(node);
|
|
130
135
|
if (num !== null)
|
|
131
136
|
return Number.isInteger(node) ? "int64" : "float64";
|
|
@@ -266,6 +271,10 @@ function isFullyTyped(comp) {
|
|
|
266
271
|
if (comp.outputType === undefined)
|
|
267
272
|
return false;
|
|
268
273
|
for (const n of comp.body) {
|
|
274
|
+
// #125: a control-gate cond is a typeless skip marker (A3) — it never de-boxes a result, so it is
|
|
275
|
+
// exempt from the "every node carries outType" de-box requirement (matches type-gate's exemption).
|
|
276
|
+
if (isControlGate(n))
|
|
277
|
+
continue;
|
|
269
278
|
if (n.outType === undefined)
|
|
270
279
|
return false;
|
|
271
280
|
}
|
|
@@ -385,16 +394,30 @@ function coverageRejectReason(comp) {
|
|
|
385
394
|
// to it too. A non-single/connection bindField member is rejected by that shared check.
|
|
386
395
|
for (const [i] of ep.parallelStageOf) {
|
|
387
396
|
const n = comp.body[i];
|
|
397
|
+
// #125: a when(...) control-gate cond IS allowed as a parallel-stage member — it is a pure
|
|
398
|
+
// Expression (no dispatch), evaluated in preflight ascending order like the bindField key gate, so
|
|
399
|
+
// its produced_<gate> flag is settled before the stage's gated children dispatch. It carries no
|
|
400
|
+
// handler and no boxed result, so it does not disturb the bounded-concurrency error-precedence
|
|
401
|
+
// protocol (which governs the componentRef fan-out members).
|
|
402
|
+
if (isControlGate(n))
|
|
403
|
+
continue;
|
|
388
404
|
if (!("component" in n))
|
|
389
405
|
return `node '${n.id}' is a non-componentRef member of a parallel stage (not native-covered)`;
|
|
390
406
|
}
|
|
391
407
|
const bodyIds = new Set(comp.body.map((b) => b.id));
|
|
392
408
|
for (const n of comp.body) {
|
|
393
409
|
if ("cond" in n) {
|
|
394
|
-
// #
|
|
395
|
-
//
|
|
396
|
-
//
|
|
397
|
-
//
|
|
410
|
+
// #125: a when(...) control-gate cond (`{if, then:{obj:{ok:true}}, else:null}`) は制御スキップ
|
|
411
|
+
// マーカーで出力データ型を持たない(A3 の意図的 typeless design)— outType を要求しない。gate は
|
|
412
|
+
// if を native bool へコンパイルし produced_<gate> に写すだけで、分岐内ノードは既存の
|
|
413
|
+
// `parent=gate, bindField:"ok"` skip-gate(run_behavior の null-binding skip)が実行選択する。
|
|
414
|
+
if (isControlGate(n))
|
|
415
|
+
continue;
|
|
416
|
+
// #108: a DATA-JOIN cond node (Φ 合流) is native-covered — its `if`/`then`/`else` compile to native
|
|
417
|
+
// expressions via the runtime-free NativeExprCompiler (byte-equal to run_behavior's cond lower). If an
|
|
418
|
+
// expression is not statically compilable (uncovered op / refOpt / opt operand / type mismatch), the
|
|
419
|
+
// compiler fails closed at emit (a loud GeneratorFailure) — never a silent box. A data-join cond
|
|
420
|
+
// requires outType(合流値を de-box する対象だから — control gate だけがこの要求を免除される)。
|
|
398
421
|
if (n.outType === undefined)
|
|
399
422
|
return `node '${n.id}' cond has no outType (required to de-box the branch join)`;
|
|
400
423
|
continue;
|
|
@@ -424,6 +447,11 @@ function coverageRejectReason(comp) {
|
|
|
424
447
|
// struct-de-plumbed). relationKind:single WITHOUT bindField (the #74/#323 core) IS covered.
|
|
425
448
|
if (cr.policy !== undefined && cr.policy !== "fail")
|
|
426
449
|
return `node '${n.id}' componentRef policy '${cr.policy}' (produced-aware output not yet native-covered)`;
|
|
450
|
+
// #125: a when(...) control-gate child (`parent=gate, bindField:"ok"`). Its bindField is the gate's
|
|
451
|
+
// skip signal, NOT a relation data key — so the relationKind constraint below (which governs a
|
|
452
|
+
// relation bindField into a single|connection parent) does not apply. Its skip is driven by the
|
|
453
|
+
// gate's produced_<gate> flag; the child itself can be a plain point read (or a relation read).
|
|
454
|
+
const childOfGate = cr.parent !== undefined && isControlGate(comp.body.find((b) => b.id === cr.parent));
|
|
427
455
|
// #86 part 1: a relationKind:single child WITH bindField (relationSingle) IS covered. When the
|
|
428
456
|
// bound parent field is null/absent the child is UNPRODUCED — the produced-aware output lowering
|
|
429
457
|
// (emitProducedAwareValue) then yields the unproduced rep (null / opt-nil) for a ref/refOpt into
|
|
@@ -431,7 +459,7 @@ function coverageRejectReason(comp) {
|
|
|
431
459
|
// child is ALSO covered — the connection's unproduced rep is the empty connection {items:[],cursor:null}
|
|
432
460
|
// (unproducedValue("connection")), which emitProducedAwareValue emits explicitly for a skipped
|
|
433
461
|
// connection node (a ref into it yields {items:[],cursor:null}, matching run_behavior).
|
|
434
|
-
if (cr.bindField !== undefined && cr.relationKind !== "single" && cr.relationKind !== "connection")
|
|
462
|
+
if (!childOfGate && cr.bindField !== undefined && cr.relationKind !== "single" && cr.relationKind !== "connection")
|
|
435
463
|
return `node '${n.id}' relationKind '${cr.relationKind ?? "point"}' not native-covered (bindField only supports single|connection)`;
|
|
436
464
|
if (cr.relationKind !== undefined && cr.relationKind !== "single" && cr.relationKind !== "connection")
|
|
437
465
|
return `relationKind '${cr.relationKind}' not native-covered (node '${n.id}')`;
|
|
@@ -452,13 +480,13 @@ function assertTypedCoverage(comp) {
|
|
|
452
480
|
throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go combined read (bc#77): component '${comp.name}' is a sequential componentRef read but lacks outType/outputType on every node — the combined emitter de-boxes the RESULT into the node's outType struct, so a covered read MUST be fully typed (bc#45). Add outType annotations, or regenerate on go-straightline-native (boxed result).`);
|
|
453
481
|
}
|
|
454
482
|
// ── native ports struct + PortReader ──────────────────────────────────────────────────
|
|
455
|
-
function emitPortsStruct(comp, node, asBinding, plan) {
|
|
483
|
+
function emitPortsStruct(comp, node, asBinding, plan, typedNodes) {
|
|
456
484
|
const structName = portsStructName(comp.name, node.id);
|
|
457
485
|
const portNames = Object.keys(node.ports);
|
|
458
486
|
if (portNames.length === 0) {
|
|
459
487
|
return `// ${structName} — native ports for node '${node.id}' (${node.component}); no ports.\ntype ${structName} struct{}`;
|
|
460
488
|
}
|
|
461
|
-
const fieldTypes = portNames.map((p) => portFieldGoType(node.ports[p], comp.inputPorts, `port '${p}' of node '${node.id}'`, asBinding, plan));
|
|
489
|
+
const fieldTypes = portNames.map((p) => portFieldGoType(node.ports[p], comp.inputPorts, `port '${p}' of node '${node.id}'`, asBinding, plan, typedNodes));
|
|
462
490
|
const fieldNames = portNames.map(goPortFieldName);
|
|
463
491
|
const fields = portNames
|
|
464
492
|
.map((p, i) => `\t${fieldNames[i]} ${fieldTypes[i]} // ${JSON.stringify(p)}`)
|
|
@@ -824,6 +852,43 @@ function mapOverElemInfo(comp, node, typedNodes, plan) {
|
|
|
824
852
|
function mapOverElemType(comp, node, typedNodes, plan) {
|
|
825
853
|
return renderTypeRef(mapOverElemInfo(comp, node, typedNodes, plan).elemRef);
|
|
826
854
|
}
|
|
855
|
+
/**
|
|
856
|
+
* priorNodeArrElemInfo (#129) — resolve a leaf port that is a `ref` into a PRIOR BODY NODE whose
|
|
857
|
+
* annotated `outType` is (or reaches, through a field path) a native array, to its element TypeRef +
|
|
858
|
+
* the native Go slice expression that yields it. This GENERALIZES the `map…over` prior-node-arr
|
|
859
|
+
* dataflow (mapOverElemInfo's first branch) to ANY leaf input port: a fold/dedup leaf whose `items`
|
|
860
|
+
* port is `{ref:["<priorNode>"]}` (or `.items` of a prior connection node) now lowers to `[]ElemT`
|
|
861
|
+
* fed straight from the prior node's typed local — ZERO boxed Value on the read hot path.
|
|
862
|
+
*
|
|
863
|
+
* The element type comes STRICTLY from the prior node's EXPLICIT `outType` annotation walked through
|
|
864
|
+
* typedFieldAccess (BC does NOT infer — consumer-interface C3 / [[graphddb-typed-native-static-link]]):
|
|
865
|
+
* if the head is not a prior body node, or its outType (through the field path) is not an `arr`, this
|
|
866
|
+
* returns null and the caller keeps its existing fail-closed behaviour (never a silent box). A
|
|
867
|
+
* single-segment INPUT-array port (elemType) is a DIFFERENT covered shape (portArrayElemRef) — handled
|
|
868
|
+
* ahead of this. Requires the typedNodes map (prior-node outType TypeRefs) and a TypePlan.
|
|
869
|
+
*/
|
|
870
|
+
function priorNodeArrElemInfo(node, typedNodes, plan) {
|
|
871
|
+
if (typedNodes === undefined || plan === undefined)
|
|
872
|
+
return null;
|
|
873
|
+
if (staticArrElems(node) !== null)
|
|
874
|
+
return null; // a static array literal — not a prior-node ref.
|
|
875
|
+
const e = classifyExpr(node);
|
|
876
|
+
if (e.kind !== "ref" || e.opt || e.path.length < 1)
|
|
877
|
+
return null;
|
|
878
|
+
if (!typedNodes.has(e.path[0]))
|
|
879
|
+
return null; // head is not a prior body node → not this shape.
|
|
880
|
+
const baseRef = typedNodes.get(e.path[0]);
|
|
881
|
+
let acc;
|
|
882
|
+
try {
|
|
883
|
+
acc = goTypedInternals.typedFieldAccess(typedLocal(e.path[0]), baseRef, e.path.slice(1), plan);
|
|
884
|
+
}
|
|
885
|
+
catch {
|
|
886
|
+
return null; // the field path does not resolve on the prior node's outType → fail-closed at caller.
|
|
887
|
+
}
|
|
888
|
+
if (acc.ref.kind !== "arr")
|
|
889
|
+
return null; // the prior-node result (through the path) is not an array.
|
|
890
|
+
return { elemRef: acc.ref.elem, overExpr: acc.expr };
|
|
891
|
+
}
|
|
827
892
|
function classifyPort(node) {
|
|
828
893
|
if (staticArrElems(node) !== null)
|
|
829
894
|
return "static";
|
|
@@ -1055,7 +1120,7 @@ function emitNativeScalar(node, want, resolveRef) {
|
|
|
1055
1120
|
* plane — a boxed escape would re-introduce the bc-runtime coupling this module removes). Returns the
|
|
1056
1121
|
* struct field initializer (`Field: <expr>`). `resolveRef` resolves a ref head for the scalar path.
|
|
1057
1122
|
*/
|
|
1058
|
-
function emitPortInit(pn, expr, fieldGoType, resolveRef, inputPorts, plan) {
|
|
1123
|
+
function emitPortInit(pn, expr, fieldGoType, resolveRef, inputPorts, plan, typedNodes) {
|
|
1059
1124
|
const fieldName = goPortFieldName(pn);
|
|
1060
1125
|
// #110: a componentRef port bound to a runtime array input port (with elemType) → the native []ElemT,
|
|
1061
1126
|
// read straight from the concrete input struct (`in.<Field>`) — ZERO boxed Value on the read hot path.
|
|
@@ -1067,6 +1132,13 @@ function emitPortInit(pn, expr, fieldGoType, resolveRef, inputPorts, plan) {
|
|
|
1067
1132
|
return `${fieldName}: in.${goFieldName(e.path[0])}`;
|
|
1068
1133
|
}
|
|
1069
1134
|
}
|
|
1135
|
+
// #129: a leaf port that is a ref into a PRIOR NODE's typed arr outType (node→leaf array dataflow) →
|
|
1136
|
+
// the native []ElemT read straight off the prior node's typed local (`t_<node>.Field…`) — ZERO boxed
|
|
1137
|
+
// Value on the read hot path. The over-source case (map…over) resolves via mapOverElemInfo; this is
|
|
1138
|
+
// the plain leaf array input port (a fold/dedup leaf whose `items` = a prior node's array result).
|
|
1139
|
+
const priorArr = priorNodeArrElemInfo(expr, typedNodes, plan);
|
|
1140
|
+
if (priorArr !== null)
|
|
1141
|
+
return `${fieldName}: ${priorArr.overExpr}`;
|
|
1070
1142
|
// change #2: a static string array (projection) → a native `[]string{...}` literal.
|
|
1071
1143
|
const strArr = staticStringArrElems(expr);
|
|
1072
1144
|
if (strArr !== null) {
|
|
@@ -1176,8 +1248,8 @@ function emitParallelStageArm(comp, stage, atPos, concurrency, metas, typedNodes
|
|
|
1176
1248
|
const resolveRef = resolveRefAt(atPos);
|
|
1177
1249
|
for (const pn of Object.keys(node.ports)) {
|
|
1178
1250
|
const expr = node.ports[pn];
|
|
1179
|
-
const fieldGoType = portFieldGoType(expr, comp.inputPorts, `port '${pn}' of node '${node.id}'`, undefined, plan);
|
|
1180
|
-
inits.push(emitPortInit(pn, expr, fieldGoType, resolveRef, comp.inputPorts, plan));
|
|
1251
|
+
const fieldGoType = portFieldGoType(expr, comp.inputPorts, `port '${pn}' of node '${node.id}'`, undefined, plan, typedNodes);
|
|
1252
|
+
inits.push(emitPortInit(pn, expr, fieldGoType, resolveRef, comp.inputPorts, plan, typedNodes));
|
|
1181
1253
|
}
|
|
1182
1254
|
lines.push(`${ind}ps_${s} = ${structName}{${inits.join(", ")}}`);
|
|
1183
1255
|
lines.push(`${ind}run_${s} = true`);
|
|
@@ -1251,8 +1323,11 @@ function emitNativeRawRunner(comp, plan, flags) {
|
|
|
1251
1323
|
const metas = analyzeSequentialOps(cplan.opsLiteral, order);
|
|
1252
1324
|
const fn = sanitize(comp.name);
|
|
1253
1325
|
const typedNodes = new Map();
|
|
1326
|
+
// #125: a control-gate cond has NO outType (skip marker) — it never yields a typed data cell, so it
|
|
1327
|
+
// carries no typedNodes entry. Its skip is expressed purely via produced_<gate> (children gate on it).
|
|
1254
1328
|
for (const n of comp.body)
|
|
1255
|
-
|
|
1329
|
+
if (!isControlGate(n))
|
|
1330
|
+
typedNodes.set(n.id, deriveTypeRef(n.outType, plan));
|
|
1256
1331
|
const idToPos = new Map();
|
|
1257
1332
|
order.forEach((opIdx, k) => idToPos.set(comp.body[opIdx].id, k));
|
|
1258
1333
|
const priorNodeAt = (head, atPos) => {
|
|
@@ -1311,10 +1386,16 @@ function emitNativeRawRunner(comp, plan, flags) {
|
|
|
1311
1386
|
return { expr: `in.${goFieldName(head)}`, scalar };
|
|
1312
1387
|
};
|
|
1313
1388
|
for (const k of order.keys()) {
|
|
1314
|
-
const
|
|
1315
|
-
|
|
1389
|
+
const node = comp.body[order[k]];
|
|
1390
|
+
const id = node.id;
|
|
1391
|
+
// #125: a control-gate cond has no typed data cell — only a produced_<gate> flag (its `if` result),
|
|
1392
|
+
// which its gated children read via the existing `if produced_<parent>` skip-gate. A non-gate node
|
|
1393
|
+
// declares its typed local in the SAME line order as before (`var` first — golden-corpus stable).
|
|
1394
|
+
if (!isControlGate(node))
|
|
1395
|
+
lines.push(`\tvar ${typedLocal(id)} ${renderTypeRef(typedNodes.get(id))}`);
|
|
1316
1396
|
lines.push(`\tproduced_${sanitize(id)} := false`);
|
|
1317
|
-
|
|
1397
|
+
if (!isControlGate(node))
|
|
1398
|
+
lines.push(`\t_ = ${typedLocal(id)}`);
|
|
1318
1399
|
lines.push(`\t_ = produced_${sanitize(id)}`);
|
|
1319
1400
|
}
|
|
1320
1401
|
const idToPosAll = new Map();
|
|
@@ -1357,11 +1438,20 @@ function emitNativeRawRunner(comp, plan, flags) {
|
|
|
1357
1438
|
lines.push(`\t// ── op '${node.id}' (${node.component}${node.relationKind ? ", relationKind:" + node.relationKind : ""}${node.parent ? ", parent:" + node.parent : ""}) ──`);
|
|
1358
1439
|
let indent = "\t";
|
|
1359
1440
|
const closers = [];
|
|
1441
|
+
const parentIsGate = node.parent !== undefined && isControlGate(comp.body.find((b) => b.id === node.parent));
|
|
1360
1442
|
if (node.parent !== undefined && priorNodeAt(node.parent, k)) {
|
|
1361
1443
|
lines.push(`${indent}if produced_${sanitize(node.parent)} {`);
|
|
1362
1444
|
closers.unshift(`${indent}}`);
|
|
1363
1445
|
indent += "\t";
|
|
1364
|
-
if (node.bindField !== undefined) {
|
|
1446
|
+
if (node.bindField !== undefined && parentIsGate) {
|
|
1447
|
+
// #125: a when(...) control-gate parent. gate の bindField:"ok" は run_behavior では成立時
|
|
1448
|
+
// `true` / 不成立時 `null`(→ null-binding skip)。native では produced_<gate>(= gate の `if`)
|
|
1449
|
+
// が既にその skip を担うので、ここに来た時点で gate は成立。bound は skip の sentinel(データ
|
|
1450
|
+
// キーではない — 子の ports は実データ親を参照する)として、非 nil の `*string` を渡す。
|
|
1451
|
+
lines.push(`${indent}gateOK_${s} := "ok"`);
|
|
1452
|
+
lines.push(`${indent}bound_${s} := &gateOK_${s}`);
|
|
1453
|
+
}
|
|
1454
|
+
else if (node.bindField !== undefined) {
|
|
1365
1455
|
// bind (change #3 — typed produced-aware bound): read the parent struct field DIRECTLY (typed
|
|
1366
1456
|
// access — no serialize). `bound_<s>` is a TYPED POINTER (`*T`) — nil => UNPRODUCED/skip, non-nil
|
|
1367
1457
|
// => produced (an empty string is a VALID produced value, a non-nil *string to ""). This is the
|
|
@@ -1392,8 +1482,8 @@ function emitNativeRawRunner(comp, plan, flags) {
|
|
|
1392
1482
|
const resolveRef = resolveRefAt(k);
|
|
1393
1483
|
for (const pn of portNames) {
|
|
1394
1484
|
const expr = node.ports[pn];
|
|
1395
|
-
const fieldGoType = portFieldGoType(expr, comp.inputPorts, `port '${pn}' of node '${node.id}'`, undefined, plan);
|
|
1396
|
-
inits.push(emitPortInit(pn, expr, fieldGoType, resolveRef, comp.inputPorts, plan));
|
|
1485
|
+
const fieldGoType = portFieldGoType(expr, comp.inputPorts, `port '${pn}' of node '${node.id}'`, undefined, plan, typedNodes);
|
|
1486
|
+
inits.push(emitPortInit(pn, expr, fieldGoType, resolveRef, comp.inputPorts, plan, typedNodes));
|
|
1397
1487
|
}
|
|
1398
1488
|
lines.push(`${indent}ports_${s} := ${structName}{${inits.join(", ")}}`);
|
|
1399
1489
|
const oc = `row_${s}`;
|
|
@@ -1807,7 +1897,6 @@ function goInputHeadRef(head, comp, plan) {
|
|
|
1807
1897
|
function emitCondArm(comp, node, atPos, typedNodes, plan, priorNodeAt, zeroOut) {
|
|
1808
1898
|
const c = node.cond;
|
|
1809
1899
|
const s = sanitize(node.id);
|
|
1810
|
-
const nodeRef = typedNodes.get(node.id);
|
|
1811
1900
|
const priorHere = (head) => priorNodeAt(head, atPos);
|
|
1812
1901
|
const resolveHead = (head) => {
|
|
1813
1902
|
if (priorHere(head))
|
|
@@ -1816,8 +1905,31 @@ function emitCondArm(comp, node, atPos, typedNodes, plan, priorNodeAt, zeroOut)
|
|
|
1816
1905
|
};
|
|
1817
1906
|
const be = makeGoExprBackend(zeroOut, resolveHead, plan);
|
|
1818
1907
|
const compiler = new NativeExprCompiler(be);
|
|
1819
|
-
const resolveDecl = (name) => findDecl(plan, name).fields;
|
|
1820
1908
|
const cond = compiler.compileBool(c.if);
|
|
1909
|
+
// #125: a when(...) control-gate cond は出力データ型を持たない制御スキップマーカー。typed cell へ
|
|
1910
|
+
// 何も materialize せず、`if` を native bool にして produced_<gate> に写すだけ。分岐内ノード
|
|
1911
|
+
// (`parent=gate, bindField:"ok"`)は既存の `if produced_<gate>` skip-gate が実行選択する — gate が
|
|
1912
|
+
// 成立(produced_<gate>=true)で子は走り、不成立で子は skip、run_behavior の null-binding skip と一致。
|
|
1913
|
+
if (isControlGate(node)) {
|
|
1914
|
+
const glines = [];
|
|
1915
|
+
glines.push(`\t// ── control-gate cond '${node.id}'${c.parent ? " (parent:" + c.parent + ")" : ""} — when(...) skip marker (no data type) ──`);
|
|
1916
|
+
let gindent = "\t";
|
|
1917
|
+
const gclosers = [];
|
|
1918
|
+
if (c.parent !== undefined && priorNodeAt(c.parent, atPos)) {
|
|
1919
|
+
glines.push(`${gindent}if produced_${sanitize(c.parent)} {`);
|
|
1920
|
+
gclosers.unshift(`${gindent}}`);
|
|
1921
|
+
gindent += "\t";
|
|
1922
|
+
}
|
|
1923
|
+
// the `if` condition (fallible temps hoisted first — always evaluated); produced_<gate> = its bool.
|
|
1924
|
+
for (const st of cond.stmts)
|
|
1925
|
+
glines.push(`${gindent}${st}`);
|
|
1926
|
+
glines.push(`${gindent}produced_${s} = ${cond.expr}`);
|
|
1927
|
+
for (const cl of gclosers)
|
|
1928
|
+
glines.push(cl);
|
|
1929
|
+
return glines.join("\n");
|
|
1930
|
+
}
|
|
1931
|
+
const nodeRef = typedNodes.get(node.id);
|
|
1932
|
+
const resolveDecl = (name) => findDecl(plan, name).fields;
|
|
1821
1933
|
const thenC = compiler.compileTo(c.then, nodeRef, resolveDecl);
|
|
1822
1934
|
const elseC = compiler.compileTo(c.else, nodeRef, resolveDecl);
|
|
1823
1935
|
const lines = [];
|
|
@@ -2214,7 +2326,8 @@ function emit(ctx) {
|
|
|
2214
2326
|
const typedNodes = new Map();
|
|
2215
2327
|
// build the full typed-node map FIRST so a map's over-element resolution can see every node.
|
|
2216
2328
|
for (const n of c.body)
|
|
2217
|
-
|
|
2329
|
+
if (!isControlGate(n))
|
|
2330
|
+
typedNodes.set(n.id, deriveTypeRef(n.outType, plan)); // #125: control-gate は typeless(typedNodes に載せない)
|
|
2218
2331
|
for (const n of c.body) {
|
|
2219
2332
|
if ("fanout" in n) {
|
|
2220
2333
|
// v3: a fanout node emits a per-id element ports struct + a batch struct (like a batched map).
|
|
@@ -2229,7 +2342,8 @@ function emit(ctx) {
|
|
|
2229
2342
|
// #108: a cond node has NO ports struct (it is a pure Expression — no handler dispatch).
|
|
2230
2343
|
}
|
|
2231
2344
|
else {
|
|
2232
|
-
|
|
2345
|
+
// #129: pass typedNodes so a leaf array port fed by a prior node's arr outType types as []ElemT.
|
|
2346
|
+
structs.push(emitPortsStruct(c, n, undefined, plan, typedNodes));
|
|
2233
2347
|
}
|
|
2234
2348
|
}
|
|
2235
2349
|
// CONCRETE per-node row structs + the per-component handler interface (the fully-concrete seam).
|
|
@@ -2355,7 +2469,8 @@ ${native.map((c) => `\t${handlerIfaceName(c.name)}`).join("\n")}
|
|
|
2355
2469
|
for (const c of native) {
|
|
2356
2470
|
const typedNodes = new Map();
|
|
2357
2471
|
for (const n of c.body)
|
|
2358
|
-
|
|
2472
|
+
if (!isControlGate(n))
|
|
2473
|
+
typedNodes.set(n.id, deriveTypeRef(n.outType, plan)); // #125: control-gate は typeless(typedNodes に載せない)
|
|
2359
2474
|
for (const n of c.body) {
|
|
2360
2475
|
if ("cond" in n)
|
|
2361
2476
|
continue; // #108: cond has no handler method (pure Expression) — no scripted impl.
|
|
@@ -2440,7 +2555,18 @@ ${native.map((c) => `\t${handlerIfaceName(c.name)}`).join("\n")}
|
|
|
2440
2555
|
const rowT = rawRowStructName(c.name, node.id);
|
|
2441
2556
|
const decode = emitDecodeRow(c.name, node.id, rowT, ref, plan, emittedDecode, decodeFns, "");
|
|
2442
2557
|
const nodeBoundT = boundGoType(node, c, typedNodes, plan);
|
|
2443
|
-
|
|
2558
|
+
// #129 (TEST glue): if this node has an `items` port and its outType is a bare arr, support the
|
|
2559
|
+
// reference scriptedHandlers' `echo === "items"` — the scripted handler ECHOES the NATIVE `items`
|
|
2560
|
+
// port back as its result. This makes the node→leaf array dataflow test non-vacuous: the leaf's
|
|
2561
|
+
// observed result is exactly the native array that flowed into its ports struct, so a dropped or
|
|
2562
|
+
// boxed native array would diverge from run_behavior. `ports` is named only when the echo path
|
|
2563
|
+
// uses it (else the param stays `_` so a non-echo node compiles clean / unused-param-free).
|
|
2564
|
+
const canEcho = ref.kind === "arr" && Object.prototype.hasOwnProperty.call(node.ports, "items");
|
|
2565
|
+
const portsParam = canEcho ? "ports" : "_";
|
|
2566
|
+
const echoBranch = canEcho
|
|
2567
|
+
? `\tif src.echo == "items" {\n\t\treturn ${rowT}{Val: ports.${goPortFieldName("items")}}, true\n\t}\n`
|
|
2568
|
+
: "";
|
|
2569
|
+
methodImpls.push(`func (s *ScriptedNativeRaw) ${nodeMethodName(c.name, node.id)}(${portsParam} ${portsStructName(c.name, node.id)}, _ ${nodeBoundT}) (${rowT}, bool) {
|
|
2444
2570
|
src, ok := s.next(${JSON.stringify(node.component)})
|
|
2445
2571
|
if !ok {
|
|
2446
2572
|
return ${rowT}{}, false
|
|
@@ -2448,14 +2574,18 @@ ${native.map((c) => `\t${handlerIfaceName(c.name)}`).join("\n")}
|
|
|
2448
2574
|
if src.isErr {
|
|
2449
2575
|
return ${rowT}{IsError: true, Err: src.err}, true
|
|
2450
2576
|
}
|
|
2451
|
-
return ${decode}(src.ok), true
|
|
2577
|
+
${echoBranch} return ${decode}(src.ok), true
|
|
2452
2578
|
}`);
|
|
2453
2579
|
}
|
|
2454
2580
|
}
|
|
2455
2581
|
const adapter = `// scriptSrc — a scripted per-component outcome (an ok Value or an error), drained in order.
|
|
2582
|
+
// #129: \`echo\` carries the reference scriptedHandlers' \`echo\` directive (e.g. "items") so a scripted
|
|
2583
|
+
// node can ECHO a named input PORT back as its result — used to make the node→leaf array dataflow test
|
|
2584
|
+
// non-vacuous (the leaf handler returns its \`items\` port, so a dropped/boxed native array diverges).
|
|
2456
2585
|
type scriptSrc struct {
|
|
2457
2586
|
isErr bool
|
|
2458
2587
|
err string
|
|
2588
|
+
echo string
|
|
2459
2589
|
ok ${PKG}.Value
|
|
2460
2590
|
}
|
|
2461
2591
|
|
|
@@ -2486,12 +2616,18 @@ func NewScriptedNativeRaw(spec *${PKG}.JObj) (*ScriptedNativeRaw, error) {
|
|
|
2486
2616
|
}
|
|
2487
2617
|
for _, e := range entries {
|
|
2488
2618
|
eo, _ := e.(*${PKG}.JObj)
|
|
2619
|
+
// #129: an \`echo\` directive names an input port to echo back (mirrors the reference
|
|
2620
|
+
// scriptedHandlers' \`echo === "items"\`). It is drained together with the ok payload.
|
|
2621
|
+
echo := ""
|
|
2622
|
+
if echoNode, has := eo.Get("echo"); has {
|
|
2623
|
+
echo, _ = echoNode.(string)
|
|
2624
|
+
}
|
|
2489
2625
|
if okNode, has := eo.Get("ok"); has {
|
|
2490
2626
|
val, derr := ${PKG}.DecodeValue(okNode)
|
|
2491
2627
|
if derr != nil {
|
|
2492
2628
|
return nil, derr
|
|
2493
2629
|
}
|
|
2494
|
-
queues[comp] = append(queues[comp], scriptSrc{ok: val})
|
|
2630
|
+
queues[comp] = append(queues[comp], scriptSrc{ok: val, echo: echo})
|
|
2495
2631
|
continue
|
|
2496
2632
|
}
|
|
2497
2633
|
ev, _ := eo.Get("error")
|
|
@@ -2603,6 +2739,7 @@ function emitDecodeRow(compName, nodeId, rowT, ref, plan, emitted, out, suffix)
|
|
|
2603
2739
|
*/
|
|
2604
2740
|
export const goTypedNativeEmitter = {
|
|
2605
2741
|
language: "go-typed-native",
|
|
2742
|
+
classification: "codegen", // native: 型付きフラットコード生成・IR/dict 非在(#128/A6)
|
|
2606
2743
|
fileExtension: ".go",
|
|
2607
2744
|
defaultRuntimeImport: "github.com/foo-ogawa/behavior-contracts/go/coderuntime",
|
|
2608
2745
|
filenameHint: "behaviors.typed.native.generated.go",
|