Lokale XLS-Ergebnisse speichern, auflisten und erneut öffnen

Führen Sie eine native XLS-Anfrage in den Ergebnisspeicher des Projekts aus, listen Sie gespeicherte Ergebnisse auf und öffnen Sie eines über seine Inhalts-ID erneut.

Verwenden Sie Altifigence CLI 0.1.9 unter Linux, um native XLS-Ergebnisse in einem lokalen Projekt aufzubewahren. Jedes gespeicherte Ergebnis wird geprüft, indem seine eingebettete Anfrage beim Speichern, Auflisten und erneuten Öffnen auf der CPU wiedergegeben wird.

Ein Ergebnis speichern

Verwenden Sie einen absoluten Pfad zu Ihrem lokalen Projekt. Dieses Beispiel verwendet $HOME/alti-projects/demo-project. Speichern Sie eine native Operationsanfrage:

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 führt die in der Anfrage genannte Operation aus, gibt das Ergebnis wieder und speichert es. Prüfen Sie, dass der Exit-Status 0 ist. Die ausgewählten Referenzfelder lauten:

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

id und sha256 enthalten denselben Wert: den SHA-256-Wert des gespeicherten Ergebnisses, 64 hexadezimale Zeichen in Kleinbuchstaben. Das Ergebnis wird als .altifigence/xls/artifacts/<id>.json im mit --project angegebenen Ordner gespeichert. Ohne --project wird der aktuelle Ordner verwendet. Optimize- und Codegen-Anfragen speichern Ergebnisse altifigence.xls.operation-result.v2, die compilation enthalten. Das erneute Speichern derselben Anfrage gibt dieselbe id zurück.

Gespeicherte Ergebnisse auflisten

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

ids enthält die gespeicherten IDs in sortierter Reihenfolge. Vor dem Auflisten wird jedes gespeicherte Ergebnis gegen seine ID geprüft und wiedergegeben. Die Liste umfasst bis zu 256 Einträge. Ein Projekt ohne gespeicherte Ergebnisse gibt ein leeres Array ids zurück. Von alti xls run veröffentlichte Ergebnisse werden im selben Speicher aufbewahrt und erscheinen in derselben Liste.

Ein Ergebnis erneut öffnen

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

Nach dem Exit-Status 0 lauten die ausgewählten Felder:

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

show gibt das vollständige gespeicherte Ergebnis zurück, einschließlich request, source_sha256, request_sha256 und parameters. Es prüft zuerst, ob der SHA-256-Wert der Datei der ID entspricht und die Datei höchstens 65536 Bytes groß ist, gibt dann die eingebettete Anfrage wieder und vergleicht jedes Feld.

Nach Fehlern fortfahren

Wenn die XLS-Engine eine Store-Operation ablehnt, endet der Befehl mit dem Exit-Status 2 und schreibt ein Objekt altifigence.xls.error.v1 in die Standardausgabe. Lesen Sie dessen Code und Meldung:

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

Die CLI meldet XLS artifact id must be 64 lowercase hexadecimal characters in der Standardfehlerausgabe mit dem Präfix error: und endet mit dem Exit-Status 1, bevor sie die Engine ausführt. Lesen Sie diese Meldung in der Standardfehlerausgabe. Kopieren Sie die id unverändert aus store oder aus ids in list.

Bei artifact-not-found: XLS store does not exist übergeben Sie dasselbe --project, das Sie mit store verwendet haben.

Wenn show artifact-io: cannot access local XLS artifact store meldet, führen Sie list mit demselben --project aus und verwenden Sie eine ID aus ids.

Bei resource-limit: store listing exceeds 256 entries; use artifact-show with a known id öffnen Sie Ergebnisse mit show und den IDs, die Sie aus store gespeichert haben, erneut.

Mit nativem XLS prüfen, auswerten und RTL erzeugen