docs: restore docs/private/roadmap from 7b4908f9 (Phase 20.31)

This commit is contained in:
nyash-codex
2025-10-31 18:00:10 +09:00
parent 1d49e24bf0
commit 8fd3a2b509
433 changed files with 108935 additions and 0 deletions

View File

@ -0,0 +1,270 @@
# Documentation - ドキュメント
## 📋 概要
Python-Hakorune統合のドキュメント計画です。
## 📚 ドキュメント構成
### 1. ユーザーガイド
#### クイックスタート
```markdown
# Python統合クイックスタート
## インストール
hakorune-pythonプラグインをインストール:
```bash
cargo build --release --features python-integration
```
## 基本的な使い方
```hakorune
// Pythonコードを実行
local py = new PyRuntimeBox()
local result = py.eval("2 + 3")
console.log(result.to_string()) // "5"
// モジュールをインポート
local math = py.import("math")
local pi = math.getattr("pi")
console.log(pi.to_string()) // "3.14159..."
```
```
#### チュートリアル
- Python基本操作
- モジュールインポート
- オブジェクト操作
- エラーハンドリング
- パフォーマンス最適化
### 2. リファレンス
#### PyRuntimeBox API
```markdown
# PyRuntimeBox
Python実行環境を提供するBox。
## メソッド
### eval(code: StringBox) -> PyObjectBox
Pythonコードを評価し、結果を返す。
**引数:**
- `code`: 実行するPythonコード
**戻り値:**
- `PyObjectBox`: 実行結果
**例:**
```hakorune
local py = new PyRuntimeBox()
local result = py.eval("2 + 3")
```
### import(name: StringBox) -> PyObjectBox
Pythonモジュールをインポート。
**引数:**
- `name`: モジュール名
**戻り値:**
- `PyObjectBox`: インポートされたモジュール
**例:**
```hakorune
local math = py.import("math")
```
```
#### PyObjectBox API
```markdown
# PyObjectBox
Pythonオブジェクトを表すBox。
## メソッド
### getattr(name: StringBox) -> PyObjectBox
オブジェクトの属性を取得。
### setattr(name: StringBox, value: PyObjectBox)
オブジェクトの属性を設定。
### call(args: ArrayBox) -> PyObjectBox
オブジェクトを関数として呼び出し。
### to_string() -> StringBox
Pythonオブジェクトを文字列に変換。
### to_int() -> IntegerBox
Pythonオブジェクトを整数に変換。
### to_bool() -> BoolBox
Pythonオブジェクトを真偽値に変換。
```
### 3. 設計ドキュメント
#### アーキテクチャ
- 全体構成
- レイヤー構造
- データフロー
#### ABI仕様
- ハンドル管理
- 型変換ルール
- エラーハンドリング
#### GIL管理
- 獲得・解放ルール
- ネスト呼び出し
- マルチスレッド対応
### 4. 開発者ガイド
#### プラグイン開発
```markdown
# Python統合プラグイン開発ガイド
## プラグインの構造
```rust
// src/lib.rs
use hakorune_plugin_api::*;
#[no_mangle]
pub extern "C" fn nyplug_python_invoke(
method_id: u32,
args: *const TLV,
args_len: usize,
ret: *mut TLV,
) -> i32 {
// 実装
}
```
## ビルド
```bash
cargo build --release --crate-type cdylib
```
```
#### コントリビューション
- コーディング規約
- テストガイドライン
- プルリクエストプロセス
### 5. トラブルシューティング
#### よくある問題
**Q: Pythonモジュールが見つからない**
```
A: PYTHONPATHを設定してください:
export PYTHONPATH=/path/to/modules:$PYTHONPATH
```
**Q: GILデッドロックが発生する**
```
A: ネスト呼び出しを避けるか、GILを明示的に解放してください。
```
**Q: メモリリークが発生する**
```
A: PyObjectBoxを適切にdropしているか確認してください。
```
## 📝 ドキュメント作成タスク
### Phase 1: 基本ドキュメント
- [ ] README.md概要
- [ ] QUICKSTART.mdクイックスタート
- [ ] INSTALLATION.mdインストール
### Phase 2: API リファレンス
- [ ] PyRuntimeBox API
- [ ] PyObjectBox API
- [ ] 型変換ルール
### Phase 3: チュートリアル
- [ ] 基本操作
- [ ] モジュールインポート
- [ ] オブジェクト操作
- [ ] エラーハンドリング
### Phase 4: 開発者向け
- [ ] アーキテクチャ設計
- [ ] プラグイン開発ガイド
- [ ] コントリビューションガイド
### Phase 5: その他
- [ ] トラブルシューティング
- [ ] パフォーマンスガイド
- [ ] ベストプラクティス
## 🎯 ドキュメント品質基準
### 必須要件
- [ ] コードサンプルが動作する
- [ ] 用語が一貫している
- [ ] エラーメッセージが明確
- [ ] プラットフォーム差異を記載
### 推奨要件
- [ ] 図表を含む
- [ ] ビデオチュートリアル
- [ ] 多言語対応(日本語・英語)
- [ ] 検索可能
## 📊 ドキュメント構成図
```
docs/
├── guides/
│ ├── python-integration/
│ │ ├── README.md # 概要
│ │ ├── quickstart.md # クイックスタート
│ │ ├── installation.md # インストール
│ │ ├── tutorial/ # チュートリアル
│ │ │ ├── 01-basics.md
│ │ │ ├── 02-modules.md
│ │ │ ├── 03-objects.md
│ │ │ └── 04-errors.md
│ │ └── troubleshooting.md # トラブルシューティング
│ └── ...
├── reference/
│ ├── python-integration/
│ │ ├── pyruntimebox-api.md # PyRuntimeBox API
│ │ ├── pyobjectbox-api.md # PyObjectBox API
│ │ ├── type-conversion.md # 型変換ルール
│ │ └── error-handling.md # エラーハンドリング
│ └── ...
└── development/
└── python-integration/
├── architecture.md # アーキテクチャ
├── plugin-dev.md # プラグイン開発
└── contributing.md # コントリビューション
```
## 🔗 関連リソース
### 公式ドキュメント
- [Python C API](https://docs.python.org/3/c-api/)
- [PyO3 Guide](https://pyo3.rs/)
### 参考実装
- Rust PyO3
- Node.js Python bindings
- Julia Python interop
## 🔗 関連ドキュメント
- [Phase 20 メインREADME](../README.md)
- [Planning](../planning/)
- [Core Implementation](../core-implementation/)