behavior-contracts 0.2.0 → 0.2.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/dist/behavior.d.ts +47 -0
- package/dist/behavior.d.ts.map +1 -1
- package/dist/behavior.js.map +1 -1
- package/dist/generator/core.d.ts +1 -1
- package/dist/generator/core.d.ts.map +1 -1
- package/dist/generator/core.js.map +1 -1
- package/dist/generator/emit-straightline-go.d.ts +77 -0
- package/dist/generator/emit-straightline-go.d.ts.map +1 -0
- package/dist/generator/emit-straightline-go.js +592 -0
- package/dist/generator/emit-straightline-go.js.map +1 -0
- package/dist/generator/emit-straightline-php.d.ts +46 -0
- package/dist/generator/emit-straightline-php.d.ts.map +1 -0
- package/dist/generator/emit-straightline-php.js +501 -0
- package/dist/generator/emit-straightline-php.js.map +1 -0
- package/dist/generator/emit-straightline-python.d.ts +36 -0
- package/dist/generator/emit-straightline-python.d.ts.map +1 -0
- package/dist/generator/emit-straightline-python.js +441 -0
- package/dist/generator/emit-straightline-python.js.map +1 -0
- package/dist/generator/emit-straightline-rust.d.ts +78 -0
- package/dist/generator/emit-straightline-rust.d.ts.map +1 -0
- package/dist/generator/emit-straightline-rust.js +615 -0
- package/dist/generator/emit-straightline-rust.js.map +1 -0
- package/dist/generator/emit-straightline-typed-go.d.ts +39 -0
- package/dist/generator/emit-straightline-typed-go.d.ts.map +1 -0
- package/dist/generator/emit-straightline-typed-go.js +828 -0
- package/dist/generator/emit-straightline-typed-go.js.map +1 -0
- package/dist/generator/emit-straightline-typed-rust.d.ts +48 -0
- package/dist/generator/emit-straightline-typed-rust.d.ts.map +1 -0
- package/dist/generator/emit-straightline-typed-rust.js +823 -0
- package/dist/generator/emit-straightline-typed-rust.js.map +1 -0
- package/dist/generator/emit-straightline-typed-typescript.d.ts +49 -0
- package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -0
- package/dist/generator/emit-straightline-typed-typescript.js +314 -0
- package/dist/generator/emit-straightline-typed-typescript.js.map +1 -0
- package/dist/generator/emit-straightline-typescript.d.ts +36 -0
- package/dist/generator/emit-straightline-typescript.d.ts.map +1 -0
- package/dist/generator/emit-straightline-typescript.js +397 -0
- package/dist/generator/emit-straightline-typescript.js.map +1 -0
- package/dist/generator/index.d.ts +13 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +39 -0
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/literal.d.ts +7 -0
- package/dist/generator/literal.d.ts.map +1 -1
- package/dist/generator/literal.js +41 -0
- package/dist/generator/literal.js.map +1 -1
- package/dist/generator/straightline.d.ts +147 -0
- package/dist/generator/straightline.d.ts.map +1 -0
- package/dist/generator/straightline.js +122 -0
- package/dist/generator/straightline.js.map +1 -0
- package/dist/generator/typed.d.ts +156 -0
- package/dist/generator/typed.d.ts.map +1 -0
- package/dist/generator/typed.js +108 -0
- package/dist/generator/typed.js.map +1 -0
- package/dist/guard.d.ts +18 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +56 -0
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/primitives.d.ts +112 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +206 -0
- package/dist/primitives.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* emit-straightline-typed-go.ts — Go typed 直線 emitter(bc#47 / Layer B2, 実 de-box)。
|
|
3
|
+
*
|
|
4
|
+
* typed-codegen.md §4.3/§4.4 の Go 具体化。**最初のコンパイル言語の typed emitter**であり、B2-ts で
|
|
5
|
+
* decls-only だった {@link TypedMaterializer} seam を **runtime-materialization 対応に拡張(co-design)**
|
|
6
|
+
* した上で、その拡張 hook を Go で実装する(rust #48 が同じ拡張 seam に乗る)。
|
|
7
|
+
*
|
|
8
|
+
* ── TS oracle との決定的な違い(実 de-box)───────────────────────────────────────
|
|
9
|
+
* TS は型消去のため runtime の脱box が無い(生成モジュールの runtime は straight-line と byte-identical)。
|
|
10
|
+
* **Go は違う**: `outType`/`outputType` を持つノード/component の exec 経路は、動的 `Value` /
|
|
11
|
+
* `map[string]interface{}` ではなく **outType 由来の具体 Go struct**(`T0`/`T1`/…)で値を保持する
|
|
12
|
+
* (=Phase B 脱box の実体を Go で)。生成物の構成:
|
|
13
|
+
*
|
|
14
|
+
* 1. **straight-line 本体**(`go-straightline` と byte 同一の `run_*`): 生の scope(`*Obj` = 動的 Value)を
|
|
15
|
+
* 組む。handler は境界注入で Value を返す mock(bc conformance では "raw" = この Value)。
|
|
16
|
+
* 2. **struct 宣言**(typed のみ): 型プランの named obj を Go struct へ(決定的名+hash-dedup — typed.ts 共有)。
|
|
17
|
+
* 3. **raw→typed marshaller**(§4.4): 各 struct に `marshal_T*(Value) (T*, error)` を emit。動的 Value の
|
|
18
|
+
* 各 field を **typed に読み出して具体 struct を組む**(generic Value 走査を exec から除去する de-box)。
|
|
19
|
+
* 4. **typed view 関数**(実 exec 経路): `typedView_<comp>(scope *Obj) (Value, error)`。straight-line が
|
|
20
|
+
* 組んだ生 scope の各 typed node を marshaller で **具体 struct へ materialize**(typed ローカル)し、
|
|
21
|
+
* `ref` は **struct field 直参照**(map lookup でない)で辿り、output を **具体 struct/scalar/slice として
|
|
22
|
+
* 組み立て**、境界で canonical Value へ戻す(観測等価 pin)。この関数は Bind から**実際に呼ばれる**
|
|
23
|
+
* (dead な struct 宣言ではない — AC の「手抜き禁止」)。
|
|
24
|
+
* 5. **Bind**: typed component は typedView 経路(実 de-box)、untyped component は straight-line 経路。
|
|
25
|
+
*
|
|
26
|
+
* ── 後方互換 ────────────────────────────────────────────────────────────────────
|
|
27
|
+
* `outType`/`outputType` が IR のどこにも無ければ typed 層は emit されず、出力は `go-straightline` と
|
|
28
|
+
* byte-identical(後方互換 pin)。
|
|
29
|
+
*/
|
|
30
|
+
import type { EmitterPlugin } from "./core.js";
|
|
31
|
+
import { type TypedMaterializer } from "./typed.js";
|
|
32
|
+
export declare const goTypedMaterializer: TypedMaterializer;
|
|
33
|
+
/**
|
|
34
|
+
* goTypedEmitter — 言語識別子 `go-typed` の emitter plugin(bc#47 B2, 実 de-box)。
|
|
35
|
+
* go-straightline 本体(byte 同一)+ typed 層(struct/marshaller/serializer/typedView)。
|
|
36
|
+
* `outType` 無し IR は go-straightline と byte-identical(後方互換)。
|
|
37
|
+
*/
|
|
38
|
+
export declare const goTypedEmitter: EmitterPlugin;
|
|
39
|
+
//# sourceMappingURL=emit-straightline-typed-go.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-straightline-typed-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAiPpB,eAAO,MAAM,mBAAmB,EAAE,iBAOjC,CAAC;AAwmBF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC"}
|