00. 対象たいしょう設計せっけい決定けってい

方針ほうしん

この仕様しようは、実装じっそうすべき言語げんご操作そうさを、じた契約けいやくcontractとして定義ていぎする。未実装みじっそう機能きのうを、将来しょうらい曖昧あいまい判断はんだんゆだねたまま、現在げんざい成功せいこうする経路けいろいてはならない。拡張点かくちょうてんextension pointについても、入力にゅうりょく出力しゅつりょく失敗しっぱい許可範囲きょかはんい定義ていぎする。

1. 実装対象じっそうたいしょう

完成品かんせいひんには、native CLI、wasm32-wasip2 CLI、browser workerようWasm、汎用はんようLSP server、portable operation providerをふくめる。

r3では、4言語げんごのWeb Playground、純粋じゅんすいTEA UI core、静的せいてき文書ぶんしょれい・Rust APIサイトと、GitHub Pagesでの配布はいふふくめる。正式文書せいしきぶんしょ最終的さいしゅうてきにNEPL3 Doc DSLへ移行いこうする計画けいかくと、その受入うけいれ必須ひっすとする。現在げんざいのMarkdownは、移行審査いこうしんさむまでは正本せいほんcanonical sourceである。未定義みていぎのDoc表現ひょうげんを、情報じょうほううしな変換へんかんやRawHtmlでめてはならない。詳細しょうさいは14〜16しょうさだめる。

汎用はんようNEPL3プログラミング言語げんご動画どうがDSL、完全かんぜんなHTML処理系しょりけい、アナログまたは伝播遅延でんぱちえんあつか回路かいろ、CAS、証明器しょうめいき独自どくじフォントrasterizerは、このパッケージの言語げんごにはふくめない。これらの名前なまえでstubを提供ていきょうしてはならない。追加実装ついかじっそうは、登録済とうろくずみのschema・operation・readerの公開契約こうかいけいやくとおしておこなう。MathML・HTML・SVGの出力しゅつりょくは、正式せいしき出力しゅつりょくbackendである。あとてるかりのrendererとして実装じっそうしてはならない。

2. 保存ほぞんする意味上いみじょう境界きょうかい

3. 試作しさくあつか

この設計せっけいのAPI・モデル・エラー・責務せきむを、あと交換こうかんするあら仮設計かりせっけいとして実装じっそうしてはならない。後方互換こうほうごかん維持いじするために、あやまった設計せっけい保存ほぞんすることも要求ようきゅうしない。設計せっけい変更へんこうするときは、あたらしいdesign revisionをあたえ、関連かんれんするすべての契約けいやく試験しけん同時どうじ更新こうしんする。

v1契約識別けいやくしきべつもちいるrevisionであり、将来しょうらい無期限むきげんなABI互換ごかん約束やくそくする呼称こしょうではない。

4. 不変条件ふへんじょうけん

5. 具体的ぐたいてきつづ

以前いぜん会話かいわにあった Fnvaluesplice は、今回こんかいの4言語げんご組込くみこみではない。構文生成こうぶんせいせいは、各言語かくげんご公開こうかいconstructor APIで実際じっさいおこなえる。将来しょうらい言語げんごは、おなじconstructor schemaをして実装じっそうする。Grammarの call / map / then は、現在げんざいもRust providerへ接続せつぞくできる完全かんぜん拡張点かくちょうてんである。

各言語かくげんごぜんconstructorとarityは design/forms.jsonさだめる。そこで定義ていぎされていないつづりは、該当がいとうカテゴリの明示的めいじてき識別子しきべつしleaf規則きそく一致いっちする場合ばあいだけ、名前参照なまえさんしょうとしてめる。未知みちのformを、arity 0と推測すいそくしてはならない。