はじめに / セットアップ / CLI / 対応ブロック一覧 / アーキテクチャ
このページは、xyo-rust を変更するときに確認する場所と、生成物・ドキュメント更新の扱いをまとめた開発者向けメモです。
ビルド環境が整っているかを確認します。
rustc --version
llvm-config --version
clang --version
cargo testCLI の読み込み経路だけを手早く確認したい場合は、同梱サンプルを使います。
cargo run -- stats examples/script.sb3
cargo run -- json examples/script.sb3IR 生成や JIT 実行を確認したい場合は、対象の .sb3 が 対応ブロック一覧 の IR 対応範囲に収まっているかを先に確認してください。examples/script.sb3 は読み込み確認用のサンプルで、IR 未対応の制御ブロックも含みます。
cargo run -- compile <ir-supported-project.sb3> --output out.ll
cargo run -- run <ir-supported-project.sb3>| 変更内容 | 主なファイル |
|---|---|
| CLI サブコマンド | src/cli.rs, src/main.rs, docs/markdown/cli.md |
.sb3 読み込み・エラー表示 |
src/sb3.rs, docs/markdown/getting-started.md, docs/markdown/cli.md |
| Scratch JSON 型 | src/types/ |
| opcode のパース | src/parser/, docs/markdown/blocks.md |
| LLVM IR 生成 | src/compiler/, docs/markdown/blocks.md, docs/markdown/architecture.md |
| JIT 実行 | src/jit/, docs/markdown/architecture.md |
| C bitcode ヘルパー | bitcodes/c/, build.rs, docs/markdown/architecture.md |
新しい opcode の対応を追加する場合は、次の順で確認します。
src/types/mod.rsのBlockOpCodesに opcode が定義されているか確認するsrc/parser/blocks/<category>.rsでStmtまたはExprへ変換する- 必要なら
src/parser/types.rsに AST バリアントを追加する - IR 生成まで対応する場合は
src/compiler/blocks/とgenerate_expr_ir側を更新する docs/markdown/blocks.mdの Parser / IR 対応状況を更新する- ユーザーから見える挙動が変わる場合は
README.md、docs/markdown/cli.md、docs/markdown/architecture.mdも更新する
Parser で通ることと run で最後まで通ることは別です。Parser だけ対応した opcode は、blocks.md では IR 未対応として明示してください。
cargo build は build.rs を通じて bitcodes/c/ 配下のトップレベル .c ファイルから LLVM bitcode と LLVM IR を生成します。
| 生成物 | 扱い |
|---|---|
target/ |
Cargo のビルド出力。Git 管理しない |
bitcodes/bc/ |
build.rs が生成する bitcode。Git 管理しない |
bitcodes/ll/ |
build.rs が生成する LLVM IR。Git 管理しない |
out.ll |
compile の既定出力。必要に応じて手元で確認する |
docs/build/ |
Taiga が生成する公開サイト。Git 管理しない |
docs/site/content/*.xml |
Taiga 用のサイトソース。通常は docs/markdown/*.md を編集する |
通常のドキュメント更新は docs/markdown/*.md を編集します。GitHub Pages では .github/workflows/pages.yml が Taiga バイナリを取得し、docs/markdown からサイトを生成します。
ローカルで確認する場合は docs/ ディレクトリに Taiga バイナリを置いてから実行します。
cd docs
./taiga markdown-dir ./markdown
rm -rf build
./taiga site公開サイト用の生成結果は docs/build/ に出力されます。
- Scratch VM と同等のイベントループはまだありません
runは JIT 経路の検証コマンドで、未実装 opcode や未実装式に当たると停止することがありますcompileは LLVM IR を保存しますが、実行可能ファイルの生成までは行いません- リスト、サウンド再生、ブロードキャスト、クローン、描画の完全な実行は未実装です
前のページ: アーキテクチャ