ローカルXLS結果を保存、一覧表示、再度開く

ネイティブXLSリクエストを実行してプロジェクトの結果ストアに保存し、保存された結果を一覧表示して、コンテンツIDで再度開きます。

Linux上のAltifigence CLI 0.1.9を使用して、ネイティブXLSの結果をローカルプロジェクトに保持します。保存された各結果は、保存、一覧表示、再度開く際に、埋め込まれたリクエストをCPUで再実行して検証されます。

結果を保存する

ローカルプロジェクトの絶対パスを使用してください。この例では$HOME/alti-projects/demo-projectを使用します。ネイティブ操作リクエストを保存します。

set -euo pipefail
PROJECT="$(cd "$HOME/alti-projects/demo-project" && pwd -P)"
WORK="$(mktemp -d)"
cat > "$WORK/eval.json" <<'JSON'
{
  "schema": "altifigence.xls.operation-request.v1",
  "operation": "eval",
  "input_kind": "dslx",
  "source": "fn compute(x: u8, y: u8) -> u8 { x + y }",
  "top": "compute",
  "backend": "cpu",
  "vectors": [["1", "2"]]
}
JSON
alti xls artifact store --project "$PROJECT" --request "$WORK/eval.json" > "$WORK/ref.json"
jq '{schema, result_schema, replay_verified}' "$WORK/ref.json"
ID="$(jq -r .id "$WORK/ref.json")"

storeはリクエストで指定された操作を実行し、結果を再実行して、保存します。終了ステータスが0であることを確認してください。選択した参照フィールドは次のとおりです。

{
  "schema": "altifigence.xls.artifact-ref.v1",
  "result_schema": "altifigence.xls.operation-result.v1",
  "replay_verified": true
}

idとsha256は同じ値で、保存された結果のSHA-256を表す64文字の小文字十六進数です。結果は、--projectで指定したフォルダー内に.altifigence/xls/artifacts/<id>.jsonとして保存されます。--projectを省略した場合は、現在のフォルダーが使用されます。optimizeとcodegenのリクエストは、compilationを含むaltifigence.xls.operation-result.v2の結果を保存します。同じリクエストをもう一度保存すると、同じidが返されます。

保存された結果を一覧表示する

alti xls artifact list --project "$PROJECT" > "$WORK/list.json"
jq '{schema, limit, replay_verified, ids}' "$WORK/list.json"

idsには保存されたIDがソート順で入ります。一覧表示の前に、保存されたすべての結果がIDと照合され、再実行されます。一覧は最大256件まで対象です。保存された結果がないプロジェクトでは、空のids配列が返されます。alti xls runが公開した結果も同じストアに保持され、同じ一覧に表示されます。

結果を再度開く

alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/result.json"
jq '{schema, status, outputs}' "$WORK/result.json"

終了ステータスが0の場合、選択したフィールドは次のとおりです。

{
  "schema": "altifigence.xls.operation-result.v1",
  "status": "succeeded",
  "outputs": [
    "bits[8]:0x3"
  ]
}

showは、request、source_sha256、request_sha256、parametersを含む保存された完全な結果を返します。まずファイルのSHA-256がIDと等しいこと、およびファイルが65536バイト以内であることを確認し、次に埋め込まれたリクエストを再実行して、すべてのフィールドを比較します。

エラーに対処する

XLSエンジンが保存操作を拒否すると、コマンドは終了ステータス2で終了し、altifigence.xls.error.v1オブジェクトを標準出力に書き込みます。そのコードとメッセージを読み取ってください。

alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/show.json" || true
jq -r '.error.code + ": " + .error.message' "$WORK/show.json"

CLIは、XLS artifact id must be 64 lowercase hexadecimal charactersを接頭辞error:を付けて標準エラー出力に報告し、エンジンを実行する前に終了ステータス1で終了します。標準エラー出力でこのメッセージを確認してください。storeのid、またはlistのidsの値をそのままコピーしてください。

artifact-not-found: XLS store does not existの場合は、storeで使用したものと同じ--projectを指定してください。

showでartifact-io: cannot access local XLS artifact storeの場合は、同じ--projectでlistを実行し、idsのIDを使用してください。

resource-limit: store listing exceeds 256 entries; use artifact-show with a known idの場合は、showとstoreで保存したIDを使って結果を再度開いてください。

ネイティブXLSで検査、評価、RTL生成を行う