診断とトラブルシューティング
人間向け・JSON 診断、検査モード、デバッグ出力、再現可能なバグ報告の手順を説明します。
Wave Foundation
コンパイラバージョンを記録する
構文の動作を調査する前に、インストール済みコンパイラの正確なバージョンを記録します。
wavec --version
そのインストールで受け付けるコマンドとオプションの表記は wavec --help で確認してください。
リンクせずにソースを検査する
Wave ソースのエラーをリンクや実行の問題から切り分けるには、次のコマンドを使います。
wavec build main.wave --emit=check
通常の実行ファイルを生成せずに Wave 入力を検査します。
JSON 診断
IDE、CI、ビルドツールが構造化された診断を必要とする場合は、次の形式を使います。
wavec --error-format=json build main.wave --emit=check
ターミナルでは既定の人間向け形式を使い、自動処理するツールでは JSON を使用します。
コンパイラ出力を調べる
wavec --debug-wave=tokens build main.wave --emit=check
wavec --debug-wave=ast build main.wave --emit=check
--debug-wave はトークン、AST、IR などの選択した表現を出力します。通常のソースエラーでは、最初の診断とソース位置から確認してください。コンパイラの動作を調査するときや開発ツールを作るときにデバッグ出力を使います。
よくある失敗の分類
- 構文解析/型エラーは
--emit=checkでも失敗します。 - インポートエラーでは
std-path、--dep-root、--dep、実際のファイルシステム構成を確認します。 - リンクエラーでは
--link、-L、ターゲット ABI、シンボル名を確認します。 - 実行時エラーはビルド成功後に発生するため、終了ステータスと実行環境によって切り分けます。
- FFI エラーでは、幅、文字列表現、ポインタのライフタイム、呼び出し規約をネイティブ宣言と照合します。
有用なバグ報告
次の情報を含めてください。
wavec --version- ホスト OS とターゲットトリプル
- 実行した完全なコマンド
- 問題を再現する最小の
.waveソース - 診断出力の全文
- 期待した動作と実際の動作
ログを公開する前に、関係のない秘密情報、トークン、非公開パスを削除してください。