Salvare, elencare e riaprire risultati XLS locali

Esegui una richiesta XLS nativa nell’archivio dei risultati del progetto, elenca i risultati salvati e riaprine uno tramite il suo ID di contenuto.

Utilizza Altifigence CLI 0.1.9 su Linux per conservare risultati XLS nativi in un progetto locale. Ogni risultato salvato viene verificato riproducendo sulla CPU la sua richiesta incorporata quando viene salvato, elencato e riaperto.

Salvare un risultato

Utilizza un percorso assoluto del progetto locale. Questo esempio utilizza $HOME/alti-projects/demo-project. Salva una richiesta di operazione nativa:

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 esegue l’operazione indicata nella richiesta, riproduce il risultato e lo salva. Verifica che il codice di uscita sia 0. I campi di riferimento selezionati sono:

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

id e sha256 contengono lo stesso valore: lo SHA-256 del risultato salvato, 64 caratteri esadecimali in minuscolo. Il risultato viene salvato come .altifigence/xls/artifacts/<id>.json nella cartella indicata da --project. Senza --project, viene utilizzata la cartella corrente. Le richieste optimize e codegen salvano risultati altifigence.xls.operation-result.v2 che includono compilation. Salvare di nuovo la stessa richiesta restituisce lo stesso id.

Elencare i risultati salvati

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

ids contiene gli ID salvati, ordinati. Prima dell’elenco, ogni risultato salvato viene controllato rispetto al proprio ID e riprodotto. L’elenco copre fino a 256 voci. Un progetto senza risultati salvati restituisce un array ids vuoto. I risultati pubblicati da alti xls run sono conservati nello stesso store e compaiono nello stesso elenco.

Riaprire un risultato

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

Dopo il codice di uscita 0, i campi selezionati sono:

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

show restituisce il risultato salvato completo, inclusi request, source_sha256, request_sha256 e parameters. Controlla prima che lo SHA-256 del file sia uguale all’ID e che il file rientri in 65536 byte, poi riproduce la richiesta incorporata e confronta ogni campo.

Riprendere dopo gli errori

Quando il motore XLS rifiuta un’operazione di store, il comando termina con codice di uscita 2 e scrive nello standard output un oggetto altifigence.xls.error.v1. Leggi il suo codice e il suo messaggio:

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

La CLI segnala XLS artifact id must be 64 lowercase hexadecimal characters nello standard error con il prefisso error: e termina con codice di uscita 1 prima di eseguire il motore. Leggi questo messaggio nello standard error. Copia l’id da store o da ids in list senza modificarlo.

Per artifact-not-found: XLS store does not exist, passa lo stesso --project che hai utilizzato con store.

Per artifact-io: cannot access local XLS artifact store da show, esegui list con lo stesso --project e utilizza un ID da ids.

Per resource-limit: store listing exceeds 256 entries; use artifact-show with a known id, riapri i risultati con show e gli ID salvati da store.

Verificare, valutare e generare RTL con XLS nativo