cli チュートリアル

このチュートリアルでは、floating-conformance 実行ファイルをビルドし、それを通して 4 つの適合性ランナーを実行する方法を説明します。直接実行することも、コーパス全体をダウンロードして実行計画を立てる just conformance ツールを通じて実行することもできます。

クイックスタート

この実行ファイルは native 専用です。リポジトリのルートでビルドし、使用法の行を表示します。

sh tools/run_moon_clean_exec.sh run --release --target native src/cli -- --help
usage: floating-conformance --backend <gda|testfloat|mpfr|itl> [backend options]

コミット済みの GDA スモークファイル(gda ランナーの既定パス)を実行します。

sh tools/run_moon_clean_exec.sh run --release --target native src/cli -- --backend gda

ランナーは要約を表示し、実行可能な行がすべて合格した場合はプロセスが 0 で終了します。

日常的なタスク

バックエンドを選ぶ

ディスパッチャ自身のオプションより後ろはすべてランナーに渡されます。

floating-conformance --backend gda --json testdata/decimal/smoke.decTest
floating-conformance --backend itl testdata/interval/smoke.itl
floating-conformance --backend mpfr --json testdata/bin_float/mpfr-4.2.2-elementary.txt
floating-conformance --backend testfloat --function f64_mul --rounding rnear_even vectors.tv

(floating-conformance はビルドされた実行ファイルを表します。例:_build/conformance/gda/native/release/build/gda-conformance.exe。)

直接呼び出す代わりにツールを使う

コーパス全体に対しては、tools/conformance.py に実行ファイルのビルド、固定されたデータの取得、フェーズの計画、シャードの並列実行を任せます。

just conformance build decimal_gda
just conformance smoke binary
just conformance run interval
just gate decimal_gda 8

終了コードを読む

0 は成功、1 は失敗したケースがある(または strict モードでサポートされないケースがある)、2 は使用法・ファイル・構文解析のエラーを意味します。スクリプトは終了コードを確認し、--json を指定した場合は標準出力の単一の JSON オブジェクトを解析してください。

さらに進んで

  • 各ランナーには固有のオプションがあります。gda_expr_cli、itl_expr_cli、mpfr_expr_cli、testfloat_expr_cli の各チュートリアルを参照してください。
  • プロセスを起動せずに MoonBit コード内でコーパスを実行するには、フロントエンドを直接呼び出します。例:gda_expr。

よくある落とし穴

  • --help はディスパッチャのものです。 --backend gda --help はディスパッチャの使用法を表示して 0 で終了し、ランナーのオプションは表示しません。
  • 既定パスは相対パスです。 ランナーの既定は testdata/ 以下のファイルなので、リポジトリのルートから実行してください。
  • 1 回の呼び出しにつき 1 つのバックエンド。 --backend は 1 回しか指定できません。

次のステップ

  • 正確なオプションと終了コードについては cli API。
  • 層構造については cli 設計。
  • 公開されているコーパスに関する主張については 検証。