summaryrefslogtreecommitdiff
path: root/docs/roadmap.ja.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/roadmap.ja.md')
-rw-r--r--docs/roadmap.ja.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/roadmap.ja.md b/docs/roadmap.ja.md
new file mode 100644
index 00000000..964ff81c
--- /dev/null
+++ b/docs/roadmap.ja.md
@@ -0,0 +1,33 @@
+# コンパイラのロードマップ
+
+[English](roadmap.md) | 日本語
+
+未完了の作業と将来の言語設計案の要約です。現在の言語仕様や実装済みの機能を
+示すものではありません。詳細と最新の判断は[英語版](roadmap.md)を参照してください。
+
+## 正確性とコンパイル
+
+- 第25〜27章で、メソッドが狭いフィールドを更新した後に切り詰め前の値を返す問題を修正する。
+- 依存関係全体を調べ、変更を伝播してから保存 IR を再利用する、正しい増分ビルドを実装する。
+- ライブラリオブジェクト全体ではなく、必要なメンバーの IR を選択してロードする。
+- 最適化後の関数サイズと安定した順位を使い、インライン化の選択を決定的にする。
+- CFG の実行頻度推定、ループの回転、定数インスタンスフィールドの格納省略を検討する。
+
+## 言語とランタイム
+
+- アンダースコアによる公開インターフェースの選別に加え、ソースの private アクセス規則を決めて強制する。
+- 未完成の self をヘルパーへ渡せる条件と、コンストラクタの完了検査を行う時点を検討する。
+- ELF シンボルの可視性と、未知の呼び出し元・コード出力の所有権を区別する。
+- クラス初期化子の整数引数を引数配列に置き換える。
+- 初期化全体を静的データで表せるクラスについて、実行時の初期化呼び出しと状態を省略する。
+- コンパクトなコード/データ領域、ネイティブポインタ型、GC に依存しない寿命管理を設計する。
+
+## データとライブラリの設計案
+
+- 名前付きフィールドの末尾に配列を配置する構造体と、異なる幅の長さフィールド。
+- 要素を生成する関数を使う配列初期化。
+- 可変・不変・C 互換・Unicode・短い値文字列の各用途に応じた文字列ライブラリ。
+- 構造体のインライン格納と値渡し。
+- `int` の既定幅を現在の `i64` から `i32` に変えるかどうか。
+
+これらの言語変更には、それぞれ設計判断と導入する章の境界が必要です。